home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-15 | 1.1 KB | 55 lines | [TEXT/CWIE] |
- // FakeDeferredTaskQueue.cp
-
- #ifndef FakeDeferredTaskQueue_h
- #include "FakeDeferredTaskQueue.h"
- #endif
- #ifndef Assert_h
- #include "Assert.h"
- #endif
- #ifndef OSError_h
- #include "OSError.h"
- #endif
-
- FakeDeferredTaskQueue::FakeDeferredTaskQueue()
- {
- head.qFlags = 0;
- head.qHead = 0;
- head.qTail = 0;
- }
-
- FakeDeferredTaskQueue& FakeDeferredTaskQueue::The()
- {
- static FakeDeferredTaskQueue the;
- return the;
- }
-
- void FakeDeferredTaskQueue::Install( DeferredTask& task )
- {
- Assert( task.qType == dtQType );
- Assert( task.dtFlags == 0 );
- Assert( task.dtAddr != 0 );
- Assert( task.dtReserved == 0 );
-
- Enqueue( reinterpret_cast<QElemPtr>( &task ),
- const_cast<QHdrPtr>( &head ) );
- }
-
- void FakeDeferredTaskQueue::ExecuteAll()
- {
- for ( QElemPtr element = head.qHead;
- element != 0;
- element = head.qHead )
- {
- DebugOSError( Dequeue( element, const_cast<QHdrPtr>( &head ) ) );
-
- DeferredTask& task = *reinterpret_cast<DeferredTask*>( element );
-
- Assert( task.qType == dtQType );
- Assert( task.dtFlags == 0 );
- Assert( task.dtAddr != 0 );
- Assert( task.dtReserved == 0 );
-
- CallDeferredTaskProc( task.dtAddr, task.dtParam );
- }
- }
-